Unofficial ps2ftpd.irx module by EP & dlanor FtpClient.c -Changed string format to "MMM DD YYYY" format, which is based on "FTP LIST Specification". (NOTE: fixes the Unknown list format errors with most ftp clients). -Added the possibility to change within the included sources the option for changing to "MMM DD hh:mm" format. (NOTE: read the comments in the included source file). -Changed list string format slightly to match a known ftp list format as it was only off by two. -Made the necessary changes for rename to be implemented. -Changed to MS-style LIST format for testing. More compatible? -Made slight changes to the previously used UNIX-style LIST format. -Added the possibility to change within the included sources the option for going back to the UNIX-style LIST format. -Changed MS-style list format slightly to show 12:00AM instead of 00:00AM, which was wrong earlier. (Note: some ftp clients will get this wrong and show 12:00PM instead so be aware). -Reverted back to the UNIX-style LIST format, as it appears to be the most compatible overall. -Cleaned up the source code a bit to fix an unused variable compiler warning. -Finished the UNIX-style LIST format after many other changes were made. (Note: Now the LIST format does either "MMM DD YYYY" or "MMM DD hh:mm" based on the days between calculation). -Added a new uitoa function that can deal with larger sizes. FileSystem.c -Added a check in the scan filesystem devices function that hides all except "mc" and "pfs" directories from the ftp clients. (Note: Now modified to fix bug with some ftp clients) -Added a fix for multiple mc directories bug, which occurs when both slots contain PS2 memory cards. -Added "mass" as a supported filesystem device so it shows up with "mc" and "pfs" in the root device listing. -Changed a few things in order to accommodate support for USB mass fixing a sub directory issue. -Created a workaround to fix a "mass" listing issue do to timestamps not being able to be accessed. (Note: Hopefully this is only temporary but as of now all files/folders timestamps for "mass" show up as "1/1/1970"). -Added "hdd" as a supported filesystem device so it shows up with "mc", "pfs", and "mass" in the root device listing. -Changed a few things to support HDD partition viewing by fixing a sub directory issue. -Made changes to only show the same partitions that unofficial LaunchELF shows. -Fixed issue where mc save folders, that are copy protected, showed up as files instead of folders. -Fixed protection attributes not showing up properly with mass. -Removed workaround for "mass" and timestamp issues since it's no longer needed do to changes to usb_mass driver. -Fixed attributes of newly created files/dirs on hdd that matches LaunchELF's implementation. -Made a workaround for "ps2fs: Warning: NULL buffer returned" issue that occurred when writing files to the hdd. -Added the ability to rename files/folders for mounted hdd partitions. -Placed printf's in the driver to show timestamps and other attributes for possible future debugging purposes that will hopefully only be temporary. -Changed hdd partitions to show up as directories instead of files. -Added the ability to auto-mount hdd partitions to pfs/0. (Notes: Once a partition's directory is opened, the partition is auto-mounted to pfs/0. The directory is then also changed to pfs/0. Partitions are un-mounted at hdd/0 and also just prior to being auto-mounted). -Added the ability to read the ps2's system clock so now root and device dirs use this instead of "1/1/1970". -Added a days between dates calculator in order to complete the UNIX-style LIST format. (Note: Now if the modified date of a file/dir is within the last 182 days the "hh:mm" format will appear in place of the "YYYY" format as it's suppose to). -Commented out all the extra debug printf's as they are currently no longer needed. -Fixed an issue with size so now hdd partitions and files can accurately display size in bytes. -Fixed an issue with auto-mounting hdd partitions for those using Internet Explorer as their ftp client. -Fixed a bug with the IOP 3.2.2 compiler by moving "int iOpened = 0" variable declaration in function FileSystem_OpenFile to the top with the other variable declarations. (Note: this fixes the crashing issue that occurred when transferring a new file to the memory card). -Rewrote some of the auto-mount partitions code to also work with the IOP 3.2.2 compiler. -Altered the partition filter to prevent sub partitions from also appearing in the listing. -Changed the size value to zero for all folders including partitions in the hdd listing. -Fixed a few issues that prevented PS1 memory cards from appearing in the listing. (Note: Files on PS1 memory cards lack timestamps so the timestamps come from the current PS2 system time). -Modified the partition-hiding patches, so as to allow access to "__common", the partition used for memory card backups by Sony's HDD browser. -Added a define "DEVICE_UNITS 4" to set the maximum number of device units from 16 to a variable. The variable was assigned the value four because it fits the maximum number of mounted partitions to PFS. (Ex: includes: pfs/0, pfs/1, pfs/2, and pfs/3). -Changed procedure for evaluating devices when one was not found. Before when a device unit such as mc/0 was not found it wouldn't even look for a memory card in mc/1. Now since the number of device units was changed from 16 to 4, it’s easier to check all possible instances without penalty. -Changed partition filter and removed the codebreaker partition from the hdd partition listing. -Fixed a future year attribute issue with dlanor's fix. -Updated ps2ftpd and existing source files to SVN rev 587. -Changed "DEVICE_UNITS" from 4 to 10 for the newer USB driver. -Altered an old workaround to allow multiple USB devices to show up properly within FTP clients. -Switched back to SVN rev 371 to likely resolve issue with auto-mounting hdd partitions. -Forced memory card items to two, mc/0 and mc/1, in order to prevent the possible trigger of a buffer overflow noted by jimmikaelkaele for use with the new mc drivers. -Changed PFS items to only look for 4 mount points as before. This change was only made do to the earlier change of DEVICE_UNITS being set to ten for USB devices. -Fixed an issues that prevented PS1 memory cards from appearing in the listing with the new mc drivers. Now should work correctly for either driver. -Added a fix to better resolve the hard drive compatibility issue with later ps2sdk updates. FtpClient.h, FileSystem.h, and FtpCommands.c -Made the necessary changes for rename to be implemented. FileSystem.h, imports.lst, and irx_imports.h -Made some slight changes to read the ps2's system clock. I have included a binary of ps2ftpd in the modules directory for the unofficial LaunchELF with all the changes noted above. I release my changes to parts of the source in the hopes that the author of ps2ftpd may add some or all of my changes. I have included all the files that I made changes to in this folder. Special Thanks to the following: Jesper Svennevid (chip) for all the hard work on ps2ftpd, which I made changes to. Daniel E. Singer for date_calc, which I used some code in ps2ftpd.